xend: fix memory leak resulting in long garbage collector runs
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 5 Aug 2009 11:04:39 +0000 (12:04 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 5 Aug 2009 11:04:39 +0000 (12:04 +0100)
commitf275a935a26169a69969b04ba268885ca028c54b
tree7d561548340882b1425d546ce0c20a85ec1f41a0
parentce09aeeba7664b75301fb2f1290439bf0b4e788a
xend: fix memory leak  resulting in long garbage collector runs

In the method xen.xend.XendStateStore.XendStateStore.load_state and
xen.xend.XendStateStore.XendStateStore.save_state the minidom objects
used to load/save the current state of a device type, can't be freed
by the python garbage collector after all references to the top node
are cleared, because of cyclic references between the DOM nodes. So
memory usage of xend increases after calling these methods.  To solve
this problem, the unlink() method must be called for a minidom object
before the last reference to the top node is cleared (see python
docs). This breaks the cyclic references, so the garbage collector can
free these objects.

Signed-off-by: juergen.gross@ts.fujitsu.com
tools/python/xen/xend/XendStateStore.py